package com.bqjr.xms.service;

import com.bqjr.xms.modle.ConsumerBeehiveUser;

/**
 * Description: ConsumerBeehiveUserService.
 * Hystrix：通过服务熔断(也可以称为断路)、降级、限流(隔离)、异步RPC等手段控制依赖服务的延迟与失败
 *  1）Circuit Breaker：熔断，
 *      circuitBreaker.requestVolumeThreshold //滑动窗口的大小，默认为20
 *      circuitBreaker.sleepWindowInMilliseconds //过多长时间，熔断器再次检测是否开启，默认为5000，即5s钟
 *      circuitBreaker.errorThresholdPercentage //错误率，默认50%
 *      每当20个请求中，有50%失败时，熔断器就会打开，此时再调用此服务，将会直接返回失败，不再调远程服务。
 *      直到5s钟之后，重新检测该触发条件，判断是否把熔断器关闭，或者继续打开
 *  2) downgrade：降级，fallback
 *      当某个服务熔断之后，服务器将不再被调用，此时客户端可以自己准备一个本地的fallback回调，返回一个缺省值
 *  3）Isolation：限流(隔离)
 *      可在服务端做这个限流逻辑，也可在客户端做
 *  4）asynchronous：异步RPC
 * Created by XHZ on 2017/8/6.
 */
//@FeignClient(name = "provider-user")
public interface ConsumerBeehiveUserService {
    ConsumerBeehiveUser findById(Long id);

    String findOrder(Long userId,String orderNo) throws InterruptedException;

    String testCircuitBreaker(int id);

}
